Message passing interface (MPI) may be a widely used programming model for high performance computing. Originally, MPI may be designed for communication among nodes running a parallel program on a distributed memory system. With the development of multiprocessors (MP) running individual processes, the use of MPI may be extended to communication among processes on a shared memory system.